import os
import glob


def clear_all_cache_files():
    """清除所有相关的缓存文件，包括所有变体形式"""
    # 定义更全面的缓存文件模式
    cache_patterns = [
        # 基础缓存文件
        "*_cache.csv",
        # 带聚类数量的基础缓存
        "*_clusters_*_cache.csv",
        # 主缓存文件的附加数据文件（如_rfm_data, _cluster_analysis）
        "*_cache.csv_*",
        # 带聚类数量的缓存的附加数据文件
        "*_clusters_*_cache.csv_*",
        # 包含哈希值的缓存文件
        "*_hash_*_cache.csv",
        "*_hash_*_cache.csv_*"
    ]

    deleted_files = []
    # 去重处理，避免重复匹配
    unique_patterns = list(set(cache_patterns))

    for pattern in unique_patterns:
        # 使用递归查找，确保所有子目录也被检查
        for file_path in glob.glob(pattern, recursive=True):
            try:
                if os.path.isfile(file_path):
                    os.remove(file_path)
                    deleted_files.append(file_path)
                    print(f"已删除缓存文件: {file_path}")
            except Exception as e:
                print(f"删除缓存文件 {file_path} 失败: {e}")

    if not deleted_files:
        print("未找到任何缓存文件")
    else:
        print(f"共删除 {len(deleted_files)} 个缓存文件")


if __name__ == "__main__":
    print("正在清除所有缓存文件...")
    clear_all_cache_files()
